﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using KCL.Code;
using KCL.Code.Business;

namespace KCL.Material
{
    public partial class ImportMaterial : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session[SessionManager.InSection] != null)
            {
                if ((int)Session[SessionManager.InSection] == 1)
                {
                    // Initialize...
                    txtDate.Attributes.Add("ReadOnly", "true");
                    if (!this.IsPostBack)
                    {
                        CalendarExtender1.SelectedDate = DateTime.Today;
                    }
                    else
                    {
                        CalendarExtender1.SelectedDate = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", null);
                    }

                    btnAddMimp.Enabled = dgvMaterialImp.Columns[6].Visible = (bool)Session[SessionManager.canCreate];
                    btnUpdateMaterilImp.Enabled = (bool)Session[SessionManager.canModify];
                    return;
                }
            }
            Response.Redirect("~/Default.aspx");
        }

        protected void btnAddMimp_Click(object sender, EventArgs e)
        {
            int quantity;
            bool flag = true;
            if (!int.TryParse(txtQuantity.Text.Trim(), out quantity))
            {
                flag = false;
            }
            else if (quantity <= 0)
            {
                flag = false;
            }

            if (!flag)
            {
                lblMsgMaterialImport.ForeColor = System.Drawing.Color.Red;
                lblMsgMaterialImport.Text = "Số lượng nguyên liệu không hợp lệ.";
                return;
            }

            MaterialImport mi = new MaterialImport();
            mi.materialCode = cboMaterial.SelectedValue;
            mi.quantity = quantity;
            mi.date = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", null);
            mi.importer = txtImporter.Text.Trim();
            mi.note = txtNote.Text.Trim();
            if (MaterialImportServices.Insert(mi))
            {
                dgvMaterialImp.DataBind();
                lblMsgMaterialImport.ForeColor = System.Drawing.Color.Green;
                lblMsgMaterialImport.Text = string.Format("Thêm {0} vào nguyên liệu {1} thành công.", quantity, mi.materialCode);
            }
            else
            {
                lblMsgMaterialImport.ForeColor = System.Drawing.Color.Red;
                lblMsgMaterialImport.Text = string.Format("Thêm {0} vào nguyên liệu {1} thất bại.", quantity, mi.materialCode);
            }
        }

        protected void btnUpdateMaterilImp_Click(object sender, EventArgs e)
        {
            if (dgvMaterialImp.SelectedDataKey == null)
            {
                lblMsgMaterialImport.ForeColor = System.Drawing.Color.Black;
                lblMsgMaterialImport.Text = "Bạn chưa chọn hàng cần cập nhật.";
                return;
            }

            int quantity;
            bool flag = true;
            if (!int.TryParse(txtQuantity.Text.Trim(), out quantity))
            {
                flag = false;
            }
            else if (quantity <= 0)
            {
                flag = false;
            }

            if (!flag)
            {
                lblMsgMaterialImport.ForeColor = System.Drawing.Color.Red;
                lblMsgMaterialImport.Text = "Số lượng nguyên liệu không hợp lệ.";
                return;
            }
            MaterialImport mimp = new MaterialImport();
            mimp.id = (int)dgvMaterialImp.SelectedDataKey.Value;
            mimp.materialCode = cboMaterial.SelectedValue;
            mimp.quantity = quantity;
            mimp.date = DateTime.ParseExact(txtDate.Text, "dd/MM/yyyy", null);
            mimp.importer = txtImporter.Text.Trim();
            mimp.note = txtNote.Text.Trim();
            if (MaterialImportServices.Update(mimp))
            {
                dgvMaterialImp.DataBind();
                for (int i = 0; i < dgvMaterialImp.DataKeys.Count - 1; i++)
                {
                    if ((int)dgvMaterialImp.DataKeys[i].Value == mimp.id)
                    {
                        dgvMaterialImp.SelectedIndex = i;
                    }
                }
                lblMsgMaterialImport.ForeColor = System.Drawing.Color.Green;
                lblMsgMaterialImport.Text = string.Format("Cập nhật thành công.");
            }
            else
            {
                lblMsgMaterialImport.ForeColor = System.Drawing.Color.Red;
                lblMsgMaterialImport.Text = string.Format("Cập nhật thất bại.");
            }
        }

        protected void dgvMaterialImp_SelectedIndexChanged(object sender, EventArgs e)
        {
            int id = (int)dgvMaterialImp.SelectedDataKey.Value;
            Code.MaterialImport mimp = MaterialImportServices.GetMaterialImportByID(id);
            try
            {
                cboMaterial.SelectedValue = mimp.materialCode;
                txtQuantity.Text = mimp.quantity.ToString();
                CalendarExtender1.SelectedDate = mimp.date;
                txtImporter.Text = mimp.importer;
                txtNote.Text = mimp.note;
            }
            catch (Exception) { }
        }
    }
}